package IUSECASE;

import IBO.IAdresse;
import IBO.IClient;
import IBO.IClientParticulier;
import IBO.IClientSociete;
import IBO.ICodePostal;
import IBO.IForme;
import IBO.IIntervention;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.Vector;

public interface IUC_GestionClient extends Remote{
    
        //Client particulier
        IClientParticulier creerClientParticulier(  String nom, String prenom, String rue, String numero, 
                                                    String[] codePostal, String telephone, String email, 
                                                    String TVA) throws RemoteException;
        
        public void modifierClientParticulier(  int idclient, String nom, String prenom, String rue, 
                                                String numero, String commune, String codePostal, String telephone, 
                                                String email, String TVA) 
                                                throws RemoteException;

        Vector<IClientParticulier> listerClientsParticulier()throws RemoteException;
        
        Vector<IClient> rechercher_NumClient(int numeroClient) throws RemoteException;

        Vector<IClientParticulier> rechercherClientParticulier_NumClient(int numeroClient) throws RemoteException;
    
        Vector<IClientParticulier> rechercherClientParticulier_NomPrenom(String nom, String prenom) throws RemoteException;
    
        Vector<IClientParticulier> rechercherClientParticulier_Adresse( String rue, String numero, String codePostal, 
                                                                        String commune) throws RemoteException;
        
        //Client societe
        IClientSociete creerClientSociete(  String nom, String prenom, String rue, String numero, 
                                            String[] codePostal, String telephone, String email,
                                            String numeroTVA, String nomSociete, String[] forme) 
                                            throws RemoteException;    
        
        void modifierClientSociete( int idclient, String nom, String prenom, String rue, String numero, String commune, 
                                    String codePostal, String telephone, String email, String numeroTVA, String nomSociete, 
                                    int idForme, String libelleForme) throws RemoteException;
            
        Vector<IClientSociete> listerClientsSociete()throws RemoteException;
        
        Vector<IClientSociete> rechercherClientSociete_NumClient(int numeroClient) throws RemoteException;
    
        Vector<IClientSociete> rechercherClientSociete_NomSociete(String nomSociete) throws RemoteException;
    
        Vector<IClientSociete> rechercherClientSociete_Adresse( String rue, String numero, String codePostal, 
                                                                String commune) throws RemoteException;
        Vector<IForme> listerFormes() throws RemoteException;
        
        //Client
        Vector<ICodePostal> rechercherCP(String codePostal) throws RemoteException;
        
        Vector<ICodePostal> rechercherCommune(String commune) throws RemoteException;
        
        Vector<IAdresse> listerAdresseParClient(int idClient) throws RemoteException;
                
        Vector<IIntervention> rechercherInterventionCloturee()throws RemoteException;
}